Reverse Code Engineering - State of the Art and Countermeasures

نویسندگان

  • Carsten Willems
  • Felix C. Freiling
چکیده

Reverse Code Engineering (RCE) is, loosely speaking, the process of analyzing a piece of code in order to understand it. RCE is often used to analyze proprietary, binary programs, and in the last few years this research area has evolved a lot. In this article, we survey and structure the area of reverse code engineering. We focus on different techniques to recover both the control and data flow of a given binary program, for which no source code is available. Furthermore, we also discuss analysis techniques for malicious software (short: malware), which is commonly protected to resist analysis. We present the current state of the art of such protection techniques, while dividing them into active and passive measures. Our survey focusses on reverse engineering of binary native code for the Intel/AMD x86 architecture, and we thus disregard analysis of byte-code like Java or .NET. Nevertheless, most of the techniques presented in this article can be transferred to other architectures and operating system as well. Zusammenfassung Reverse Code Engineering (RCE) ist die Analyse von Binärprogrammen mit dem Ziel, deren Semantik zu verstehen. Traditionell wird dabei vor allem proprietäre Software untersucht, für die kein Sourcecode verfügbar ist. In letzter Zeit hat es jedoch eine enorme Ausweitung auch auf andere Einsatzgebiete gegeben. In diesem Bericht werden die verschiedenen Bereiche und Einsatzgebiete vorgestellt und eine Strukturierung vorgenommen. Dabei wird im ersten Teil auf die verschiedenen Methoden zur Rückgewinnung von Kontrollund Datenfluss unbekannter Software eingegangen. Im zweiten Teil werden ausführlich die verschiedenen Schutzmaßnahmen behandelt, die von Programmen eingesetzt werden, um sich einer solchen Analyse zu entziehen. Der Fokus liegt dabei in der Analyse von Binärcode für die Intel/AMD x86 Architektur. Daher wird das Gebiet der heutigen Bytecode-Sprachen wie Java or .NET vernachlässigt. Die vorgestellten Methoden und Verfahren lassen sich jedoch problemlos auch auf andere Hardwareund Software-Architekturen übertragen.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Reverse Engineering of Network Software Binary Codes for Identification of Syntax and Semantics of Protocol Messages

Reverse engineering of network applications especially from the security point of view is of high importance and interest. Many network applications use proprietary protocols which specifications are not publicly available. Reverse engineering of such applications could provide us with vital information to understand their embedded unknown protocols. This could facilitate many tasks including d...

متن کامل

Fake Emulation Environment to Prevent Malware from Executing

Today’s malware contains sophisticated analysis countermeasures to protect itself against reverse engineering. Countermeasures fall into two categories: offline and runtime. Encryption and obfuscation of binaries are widely used offline protections. Therefore today, most analysis is done during runtime and so malware authors implement runtime countermeasures. Runtime countermeasures include ant...

متن کامل

An Overview of the State-of-The-Art Reverse Engineering Techniques

Nowadays the development without model-based approaches are hardly imaginable, because models are not only closer to human thinking but also help the communication between developers. During a long development process the initial model becames inconsistent with the code that can be synchronised manually or automatically by tools. Reverse engineering tools have been created to help developers ac...

متن کامل

A survey on RPL attacks and their countermeasures

RPL (Routing Protocol for Low Power and Lossy Networks) has been designed for low power networks with high packet loss. Generally, devices with low processing power and limited memory are used in this type of network. IoT (Internet of Things) is a typical example of low power lossy networks. In this technology, objects are interconnected through a network consisted of low-power circuits. Exampl...

متن کامل

Reverse Engineering Android Apps With CodeInspect (invited paper)

While the Android operating system is popular among users, it has also attracted a broad variety of miscreants and malware. New samples are discovered every day. Purely automatic analysis is often not enough for understanding current state-of-the-art Android malware, though. Miscreants obfuscate and encrypt their code, or hide secrets in native code. Precisely identifying the malware’s behavior...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • it - Information Technology

دوره 54  شماره 

صفحات  -

تاریخ انتشار 2012